package com.mummyding.app.leisure.ui.science; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.PersistableBundle; import android.support.v4.widget.NestedScrollView; import android.util.Log; import android.view.View; import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; import android.webkit.WebView; import android.webkit.WebViewClient; import com.mummyding.app.leisure.R; import com.mummyding.app.leisure.database.cache.cache.ScienceCache; import com.mummyding.app.leisure.database.table.ScienceTable; import com.mummyding.app.leisure.model.science.ArticleBean; import com.mummyding.app.leisure.model.science.ScienceBean; import com.mummyding.app.leisure.support.DisplayUtil; import com.mummyding.app.leisure.support.HttpUtil; import com.mummyding.app.leisure.support.Settings; import com.mummyding.app.leisure.support.Utils; import com.mummyding.app.leisure.support.parser.ScienceContentParser; import com.mummyding.app.leisure.ui.support.BaseDetailsActivity; import com.squareup.okhttp.Callback; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * Created by MummyDing on 16-2-18. * GitHub: https://github.com/MummyDing * Blog: http://blog.csdn.net/mummyding */ public class ScienceDetailsActivity extends BaseDetailsActivity { private static final String TAG = "ScienceDetailsActivity"; private ScienceCache mCache; private ArticleBean articleBean; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCache = new ScienceCache(); articleBean = (ArticleBean) getIntent().getSerializableExtra(getString(R.string.id_science)); isCollected = (articleBean.getIs_collected()==1? true:false); initView(); } @Override protected void initView() { super.initView(); contentView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return true; } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); } }); } @Override protected void onDataRefresh() { Utils.getRawHtmlFromUrl(articleBean.getUrl(), new Callback() { @Override public void onFailure(Request request, IOException e) { Log.d(TAG, "onFailure: " + e.getMessage()); } @Override public void onResponse(final Response response) throws IOException { final String rawData = response.body().string(); Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { ScienceContentParser myParse = new ScienceContentParser(rawData); String data = myParse.getEndStr(); scrollView.setVisibility(View.VISIBLE); scrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { @Override public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { topImage.setTranslationY(Math.max(-scrollY / 2, -DisplayUtil.dip2px(getBaseContext(), 170))); } }); contentView.loadDataWithBaseURL("file:///android_asset/", "<link rel=\"stylesheet\" type=\"text/css\" href=\"guokr.css\" />" + data, "text/html", "utf-8", null); } }); } }); if(HttpUtil.isWIFI == true || Settings.getInstance().getBoolean(Settings.NO_PIC_MODE, false) == false) { setMainContentBg(articleBean.getImage_info().getUrl()); } hideLoading(); } @Override protected void removeFromCollection() { mCache.execSQL(ScienceTable.updateCollectionFlag(articleBean.getTitle(), 0)); mCache.execSQL(ScienceTable.deleteCollectionFlag(articleBean.getTitle())); } @Override protected void addToCollection() { mCache.execSQL(ScienceTable.updateCollectionFlag(articleBean.getTitle(),1)); mCache.addToCollection(articleBean); } @Override protected String getShareInfo() { return "["+articleBean.getTitle()+"]:"+articleBean.getUrl()+" ( "+getString(R.string.text_share_from)+getString(R.string.app_name)+")"; } }